home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b4.d64 / example12.5 < prev    next >
Text File  |  2007-02-28  |  822b  |  38 lines

  1. 0010 DIM KEY'(100), RECNO(100), DESCR$ OF 12
  2. 0020 OPEN FILE 2,"KEYFILE",RANDOM 10
  3. 0030 FOR R:=1 TO 99 DO READ FILE 2,R,1: KEY'(R),RECNO(R)
  4. 0040 CLOSE
  5. 0050 OPEN FILE 2,"INFILE",RANDOM 19
  6. 0070 REPEAT 
  7. 0080 REPEAT 
  8. 0090 INPUT "WHAT IS THE SEARCH KEY (1-9999)?": SEEK
  9. 0100 UNTIL SEEK<=9999 AND SEEK>=0
  10. 0110 IF SEEK=0 THEN
  11. 0120 CLOSE
  12. 0130 STOP 
  13. 0140 ELSE 
  14. 0150 BINSEARCH(1,99)
  15. 0160 ENDIF 
  16. 0170 UNTIL 2=1
  17. 0180 PROC BINSEARCH(LOW,TOP) 
  18. 0190 FOUND:=FALSE
  19. 0200 REPEAT 
  20. 0210 MID:=(LOW+TOP) DIV 2
  21. 0220 IF KEY'(MID)=SEEK THEN
  22. 0230 FOUND:=TRUE
  23. 0240 ELSE 
  24. 0250 IF KEY'(MID)>SEEK THEN
  25. 0260 TOP:=MID-1
  26. 0270 ELSE 
  27. 0280 LOW:=MID+1
  28. 0290 ENDIF 
  29. 0300 ENDIF 
  30. 0310 UNTIL FOUND OR LOW>TOP
  31. 0320 IF FOUND THEN
  32. 0330 READ FILE 2,RECNO(MID),1: NUM,DESCR$
  33. 0340 PRINT NUM;DESCR$
  34. 0350 ELSE 
  35. 0360 PRINT SEEK;"NOT FOUND"
  36. 0370 ENDIF 
  37. 0380 ENDPROC BINSEARCH
  38.